package com.xinqi.modules.file.course.courseware.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xinqi.common.mybatis.data.entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

/**
 * 课程资料库主表实体层
 * @author: dzy
 * @date: 2023/7/1
 */
@Setter
@Getter
@TableName("co_course_resource_base")
public class CourseResourceBaseEntity extends BaseEntity {

    /**
     * 标题
     */
    @TableField(value = "title")
    private String title;

    /**
     * 内容类型1互动课件2资料6互动视频
     */
    @TableField(value = "content_type")
    private Integer contentType;

    /**
     * 附件
     */
    @TableField(value = "file_urls")
    private String fileUrls;

    /**
     * 视频集合
     */
    @TableField(value = "videos")
    private String videos;

    /**
     * 图片集合
     */
    @TableField(value = "images")
    private String images;

    /**
     * 班级ID
     */
    @TableField(value = "class_id")
    private Long classId;

    /**
     * 用户id
     */
    @TableField(value = "user_id")
    private Long userId;

    /**
     * 章节Id
     */
    @TableField(value = "chapter_id")
    private Long chapterId;

    /**
     * 是否同步发布到班级 0否 1是
     */
    @TableField(value = "synchro")
    private Integer synchro;

    /**
     * 同步的班级ID集合
     */
    @TableField(value = "class_ids")
    private String classIds;

    /**
     * 是否立即发布，0否  1是
     */
    @TableField(value = "now_release")
    private Integer nowRelease;

    /**
     * 定时发布，0不定时 1定时
     */
    @TableField(value = "timing")
    private Integer timing;

    /**
     * 发布时间
     */
    @TableField(value = "release_time")
    private LocalDateTime releaseTime;

    /**
     * 截止时间(各种类型结束时间)
     */
    @TableField(value = "end_time")
    private LocalDateTime endTime;

    /**
     * 备课区互动课件Id
     */
    @TableField(value = "prepare_resource_id")
    private Long prepareResourceId;

    /**
     * 发布状态 0未发布 1已发布
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 额外字段
     */
    @TableField(value = "extra")
    private String extra;

    /**
     * 是否更新文件 0否 1是
     */
    @TableField(exist = false)
    private Integer changeFile;

}

